package com.ailight.smart.api.strategy.impl;

import com.ailight.smart.api.client.Esp8266NettyClient;
import com.ailight.smart.api.enums.OperationTypeEnums;
import com.ailight.smart.api.strategy.LightOperationStrategy;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class ManualLightOperationStrategy implements LightOperationStrategy {
    private final Esp8266NettyClient esp8266NettyClient;

    @Override
    public void operationLight(OperationTypeEnums enums) {
        // 1 如果标志位是手动模式，那我们直接发送消息
        if (enums.getModelEnums().equals(esp8266NettyClient.getStateMap())) {
            esp8266NettyClient.sendCommand(enums);
        } else {
            // 说明这个是自动模式。先改成手动模式，在修改成几档
            esp8266NettyClient.sendCommand(OperationTypeEnums.ENABLE_MANUAL_MODE);
            if (enums.getGearType() != 0) {
                esp8266NettyClient.sendCommand(enums);
            }
        }
    }
}
